{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Migrating from Spark to BigQuery via Dataproc -- Part 1\n",
    "\n",
    "* [Part 1](01_spark.ipynb): The original Spark code, now running on Dataproc (lift-and-shift).\n",
    "* [Part 2](02_gcs.ipynb): Replace HDFS by Google Cloud Storage. This enables job-specific-clusters. (cloud-native)\n",
    "* [Part 3](03_automate.ipynb): Automate everything, so that we can run in a job-specific cluster. (cloud-optimized)\n",
    "* [Part 4](04_bigquery.ipynb): Load CSV into BigQuery, use BigQuery. (modernize)\n",
    "* [Part 5](05_functions.ipynb): Using Cloud Functions, launch analysis every time there is a new file in the bucket. (serverless)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Copy data to HDFS\n",
    "\n",
    "The Spark code in this notebook is based loosely on the [code](https://github.com/dipanjanS/data_science_for_all/blob/master/tds_spark_sql_intro/Working%20with%20SQL%20at%20Scale%20-%20Spark%20SQL%20Tutorial.ipynb) accompanying [this post](https://opensource.com/article/19/3/apache-spark-and-dataframes-tutorial) by Dipanjan Sarkar. I am using it to illustrate migrating a Spark analytics workload to BigQuery via Dataproc.\n",
    "\n",
    "The data itself comes from the 1999 KDD competition. Let's grab 10% of the data to use as an illustration."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "!wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/sparklab/kddcup.data_10_percent.gz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "!hadoop fs -put kddcup* /"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 4 items\n",
      "drwx------   - mapred hadoop          0 2019-07-02 22:05 /hadoop\n",
      "-rw-r--r--   2 root   hadoop    2144903 2019-07-02 22:16 /kddcup.data_10_percent.gz\n",
      "drwxrwxrwt   - hdfs   hadoop          0 2019-07-02 22:05 /tmp\n",
      "drwxrwxrwt   - hdfs   hadoop          0 2019-07-02 22:05 /user\n"
     ]
    }
   ],
   "source": [
    "!hadoop fs -ls /"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading in data\n",
    "\n",
    "The data are CSV files. In Spark, these can be read using textFile and splitting rows on commas."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['0,tcp,http,SF,181,5450,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,9,9,1.00,0.00,0.11,0.00,0.00,0.00,0.00,0.00,normal.',\n",
       " '0,tcp,http,SF,239,486,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,19,19,1.00,0.00,0.05,0.00,0.00,0.00,0.00,0.00,normal.',\n",
       " '0,tcp,http,SF,235,1337,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,29,29,1.00,0.00,0.03,0.00,0.00,0.00,0.00,0.00,normal.',\n",
       " '0,tcp,http,SF,219,1337,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,6,6,0.00,0.00,0.00,0.00,1.00,0.00,0.00,39,39,1.00,0.00,0.03,0.00,0.00,0.00,0.00,0.00,normal.',\n",
       " '0,tcp,http,SF,217,2032,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,6,6,0.00,0.00,0.00,0.00,1.00,0.00,0.00,49,49,1.00,0.00,0.02,0.00,0.00,0.00,0.00,0.00,normal.']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyspark.sql import SparkSession, SQLContext, Row\n",
    "\n",
    "spark = SparkSession.builder.appName(\"kdd\").getOrCreate()\n",
    "sc = spark.sparkContext\n",
    "data_file = \"hdfs:///kddcup.data_10_percent.gz\"\n",
    "raw_rdd = sc.textFile(data_file).cache()\n",
    "raw_rdd.take(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Row(dst_bytes=5450, duration=0, flag='SF', hot=0, label='normal.', num_compromised=0, num_failed_logins=0, num_file_creations=0, num_root=0, protocol_type='tcp', service='http', src_bytes=181, su_attempted='0', urgent=0, wrong_fragment=0),\n",
       " Row(dst_bytes=486, duration=0, flag='SF', hot=0, label='normal.', num_compromised=0, num_failed_logins=0, num_file_creations=0, num_root=0, protocol_type='tcp', service='http', src_bytes=239, su_attempted='0', urgent=0, wrong_fragment=0),\n",
       " Row(dst_bytes=1337, duration=0, flag='SF', hot=0, label='normal.', num_compromised=0, num_failed_logins=0, num_file_creations=0, num_root=0, protocol_type='tcp', service='http', src_bytes=235, su_attempted='0', urgent=0, wrong_fragment=0),\n",
       " Row(dst_bytes=1337, duration=0, flag='SF', hot=0, label='normal.', num_compromised=0, num_failed_logins=0, num_file_creations=0, num_root=0, protocol_type='tcp', service='http', src_bytes=219, su_attempted='0', urgent=0, wrong_fragment=0),\n",
       " Row(dst_bytes=2032, duration=0, flag='SF', hot=0, label='normal.', num_compromised=0, num_failed_logins=0, num_file_creations=0, num_root=0, protocol_type='tcp', service='http', src_bytes=217, su_attempted='0', urgent=0, wrong_fragment=0)]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "csv_rdd = raw_rdd.map(lambda row: row.split(\",\"))\n",
    "parsed_rdd = csv_rdd.map(lambda r: Row(\n",
    "    duration=int(r[0]), \n",
    "    protocol_type=r[1],\n",
    "    service=r[2],\n",
    "    flag=r[3],\n",
    "    src_bytes=int(r[4]),\n",
    "    dst_bytes=int(r[5]),\n",
    "    wrong_fragment=int(r[7]),\n",
    "    urgent=int(r[8]),\n",
    "    hot=int(r[9]),\n",
    "    num_failed_logins=int(r[10]),\n",
    "    num_compromised=int(r[12]),\n",
    "    su_attempted=r[14],\n",
    "    num_root=int(r[15]),\n",
    "    num_file_creations=int(r[16]),\n",
    "    label=r[-1]\n",
    "    )\n",
    ")\n",
    "parsed_rdd.take(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Spark analysis\n",
    "\n",
    "One way to analyze data in Spark is to call methods on a dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "+-------------+------+\n",
      "|protocol_type| count|\n",
      "+-------------+------+\n",
      "|         icmp|283602|\n",
      "|          tcp|190065|\n",
      "|          udp| 20354|\n",
      "+-------------+------+\n",
      "\n"
     ]
    }
   ],
   "source": [
    "sqlContext = SQLContext(sc)\n",
    "df = sqlContext.createDataFrame(parsed_rdd)\n",
    "connections_by_protocol = df.groupBy('protocol_type').count().orderBy('count', ascending=False)\n",
    "connections_by_protocol.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another way is to use Spark SQL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "+-------------+---------+----------+--------------+--------------+-------------+-------------------+-----------------+--------------------+-------------------+------------------+\n",
      "|protocol_type|    state|total_freq|mean_src_bytes|mean_dst_bytes|mean_duration|total_failed_logins|total_compromised|total_file_creations|total_root_attempts|total_root_acceses|\n",
      "+-------------+---------+----------+--------------+--------------+-------------+-------------------+-----------------+--------------------+-------------------+------------------+\n",
      "|         icmp|   attack|    282314|        932.14|           0.0|          0.0|                  0|                0|                   0|                0.0|                 0|\n",
      "|          tcp|   attack|    113252|       9880.38|        881.41|        23.19|                 57|             2269|                  76|                1.0|               152|\n",
      "|          tcp|no attack|     76813|       1439.31|       4263.97|        11.08|                 18|             2776|                 459|               17.0|              5456|\n",
      "|          udp|no attack|     19177|         98.01|         89.89|      1054.63|                  0|                0|                   0|                0.0|                 0|\n",
      "|         icmp|no attack|      1288|         91.47|           0.0|          0.0|                  0|                0|                   0|                0.0|                 0|\n",
      "|          udp|   attack|      1177|          27.5|          0.23|          0.0|                  0|                0|                   0|                0.0|                 0|\n",
      "+-------------+---------+----------+--------------+--------------+-------------+-------------------+-----------------+--------------------+-------------------+------------------+\n",
      "\n"
     ]
    }
   ],
   "source": [
    "df.registerTempTable(\"connections\")\n",
    "attack_stats = sqlContext.sql(\"\"\"\n",
    "                           SELECT \n",
    "                             protocol_type, \n",
    "                             CASE label\n",
    "                               WHEN 'normal.' THEN 'no attack'\n",
    "                               ELSE 'attack'\n",
    "                             END AS state,\n",
    "                             COUNT(*) as total_freq,\n",
    "                             ROUND(AVG(src_bytes), 2) as mean_src_bytes,\n",
    "                             ROUND(AVG(dst_bytes), 2) as mean_dst_bytes,\n",
    "                             ROUND(AVG(duration), 2) as mean_duration,\n",
    "                             SUM(num_failed_logins) as total_failed_logins,\n",
    "                             SUM(num_compromised) as total_compromised,\n",
    "                             SUM(num_file_creations) as total_file_creations,\n",
    "                             SUM(su_attempted) as total_root_attempts,\n",
    "                             SUM(num_root) as total_root_acceses\n",
    "                           FROM connections\n",
    "                           GROUP BY protocol_type, state\n",
    "                           ORDER BY 3 DESC\n",
    "                           \"\"\")\n",
    "attack_stats.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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M8ugtWvX0r17dxdr2wBJdO/evUmzpS7YzMzMMsrF2rajqf+WLtjMzMzMMs73sJmZmbUDzX1/qe/5bF9abIZNUoGkBZIeSPt9JT0vaYmkOyRtl+Lbp/3ydLw4r48fp/gbkspaKlczMzPLvieeeIJjjjmm1uMVFRXMnDmzzj5uvvlmLrjgggaP2ZA+W0NLLoleCCzO278amBoR/YAVwNkpfjawIiL2AaamdkjqD5wEHAAcCfxWUkEL5mtmZmbtWEsUV9t0wSapCDga+I+0L+AI4O7UZAZwbNoel/ZJx0en9uOA2yPi84h4BygHhrVEvmZmZvZFFRUV7LfffpxzzjkMGDCAU045hblz5zJixAj69evHvHnz+OyzzzjrrLMYOnQogwcP5v7779907iGHHEJpaSmlpaU888wzQG6WbNSoUZxwwgnst99+nHLKKURErTn813/9F/vttx8jR47k3nvv3RT/4x//SElJCSUlJQwePJjVq1czefJknnrqKUpKSpg6dWqtfS5dupQjjzySfffdlyuuuAKASy65hF//+teb2vzjP/4j11577Rf63LBhAxdddBFDhw5l0KBB/Nu//RsA77//PoceeiglJSUMGDCAp556qvEXvgYtdQ/br4B/ALqm/e7AyohYn/Yrgd5puzewFCAi1ktaldr3Bp7L6zP/nM1ImgRMAth7772b71uYmZl1cOXl5dx1111MmzaNoUOHMnPmTJ5++mlmzZrFz3/+c/r3788RRxzB9OnTWblyJcOGDePrX/86e+yxB3PmzKGwsJAlS5YwYcIE5s+fD8CCBQtYuHAhe+21FyNGjOBPf/oTI0eO/MLYa9eu5dxzz+Wxxx5jn3324cQTT9x07JprruE3v/kNI0aM4NNPP6WwsJApU6ZwzTXX8MADD9T5nebNm8drr73GjjvuyNChQzn66KM5++yz+da3vsWFF17Ixo0buf3225k3bx6DBg3arM9p06ax66678sILL/D5558zYsQIxowZw7333ktZWRn/+I//yIYNG1izZk0z/iu0wAybpGOAjyLixfxwDU2jnmN1nbN5MGJaRAyJiCE9e/bcqnzNzMysdn379mXgwIF06tSJAw44gNGjRyOJgQMHUlFRwSOPPMKUKVMoKSlh1KhRrF27lnfffZd169Zx7rnnMnDgQMaPH8+iRYs29Tls2DCKioro1KkTJSUlVFRU1Dj266+/Tt++fenXrx+SOPXUUzcdGzFiBD/4wQ+49tprWblyJZ07N3wO6hvf+Abdu3dnhx124Fvf+hZPP/00xcXFdO/enQULFvDII48wePBgunfv/oVzH3nkEW655RZKSko4+OCDWbZsGUuWLGHo0KHcdNNNXH755bz66qt07dq1hpEbryVm2EYAfyvpKKAQ2IXcjFs3SZ3TLFsR8F5qXwn0ASoldQZ2BZbnxavln2NmZmatYPvtt9+03alTp037nTp1Yv369RQUFHDPPfew7777bnbe5ZdfTq9evXj55ZfZuHEjhYWFNfZZUFDA+vXrqU1tv182efJkjj76aGbPns3w4cOZO3dug7/Tln1W759zzjncfPPNfPDBB5x11lk1nhsRXHfddZSVffFZyCeffJIHH3yQ0047jYsuuojTTz+9wTnVp9kLtoj4MfBjAEmjgB9FxCmS7gJOAG4HJgL3p1Nmpf1n0/HHIiIkzQJmSvolsBfQD5jX3PmamZm1B1n9GY6ysjKuu+46rrvuOiSxYMECBg8ezKpVqzbNos2YMYMNGzZsdd/77bcf77zzDm+99RZf+cpXuO222zYde+uttxg4cCADBw7k2Wef5fXXX6dPnz6sXr263n7nzJnD8uXL2WGHHfjDH/7A9OnTATjuuOO49NJLWbdu3aYHDbp27bpZn2VlZdxwww0cccQRdOnShTfffJPevXvz8ccf07t3b84991w+++wz/vznP2e7YKvDxcDtkq4CFgA3pviNwK2SysnNrJ0EEBELJd0JLALWA+dHxNb/a5uZmVmLueSSS/je977HoEGDiAiKi4t54IEHOO+88zj++OO56667OPzww9lpp522uu/CwkKmTZvG0UcfTY8ePRg5ciSvvfYaAL/61a94/PHHKSgooH///owdO5ZOnTrRuXNnDjzwQM444wy+//3v19jvyJEjOe200ygvL+fkk09myJAhAGy33XYcfvjhdOvWjYKC3A9TDBo0aLM+L7zwQioqKigtLSUi6NmzJ3/4wx944okn+Nd//Ve6dOnCzjvvzC233NLIK1oz1fVkRns0ZMiQqL6p0cy2nl/+bpYNixcvZv/992/rNDqUjRs3Ulpayl133UW/fv2avf+a/k0lvRgRQ+o716+mMjMzsw5v0aJF7LPPPowePbpFirWm8qupzMzMrM0dd9xx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/0REjO6IWiVJksquo+5huwL4AXBlVdtY4I7MvCAixhbb5wKHAQOKvz2BHwN7RsQ2wHlAA5DAlIiYkJkvdFDNkiStd9b1PZDel1hOHTLDlpl/Aha2aB4FjC/ejweOqmq/MivuA3pERG/gEGBiZi4sQtpE4NCOqFeSJK2fJk2axBFHHLHOznfRRRfxyiuvrNg+/PDDWbRo0To7f3vV8h627TNzHkDxul3R3geYU9WvqWhrq12SJKldMpPXX3+9zf0tA9utt95Kjx49alHaSpXhoYPW7sLLlbS/+QQRYyJickRMbm5uXqfFSZKkf2lsbGTXXXfl9NNPZ/DgwZx44on88Y9/ZK+99mLAgAE88MADvPzyy5x66qm8+93vZvjw4dxyyy0rjt1nn30YMWIEI0aM4N577wUqs2T7778/xx57LLvuuisnnngima3+Xz4Av//979l1113Ze++9+fWvf72i/fzzz+fCCy9csT148GAaGxtpbGxk4MCBnHnmmYwYMYI5c+bwyU9+koaGBgYNGsR5550HwMUXX8zcuXN53/vex/ve9z6g8hvlzz//PADf+973GDx4MIMHD+aiiy5a8ZkGDhzIGWecwaBBgzj44IP55z//uQ5HvKKWge25YqmT4nV+0d4E7FjVry8wdyXtb5KZl2ZmQ2Y29Oq1yh+8lyRJa2HWrFl85jOfYfr06Tz22GNcc8013HPPPVx44YV861vf4pvf/CYHHHAADz74IHfddRfnnHMOL7/8Mttttx0TJ07koYce4vrrr+fss89ecc6pU6dy0UUX8eijj/LUU0/x5z//udVrL1myhDPOOIPf/OY33H333Tz77LOrVfPjjz/OSSedxNSpU9l555355je/yeTJk5k+fTr/+7//y/Tp0zn77LPZYYcduOuuu7jrrrvecPyUKVP4xS9+wf333899993Hz372M6ZOnQrAE088wVlnncWMGTPo0aMHN910UztHtm21DGwTgOVPeo4GbqlqP6l4WnQksLhYMr0dODgiti6eKD24aJMkSXXUv39/hgwZwkYbbcSgQYM48MADiQiGDBlCY2Mjf/jDH7jgggsYNmwY+++/P0uWLGH27NksXbqUM844gyFDhnDcccfx6KOPrjjnHnvsQd++fdloo40YNmwYjY2NrV77scceo3///gwYMICI4KMf/ehq1bzzzjszcuTIFds3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znqX0G5n/eSAepcgqYSampro3r07/fr1IyLqXY5qIDNZsGABTU1N9O/fv13nKMVDB5IkdRZLliyhZ8+ehrVOJCLo2bPnWs2qGtgkSaoxw1rns7b/zQ1skiRJJec9bJIk1dG6vlfX+2c3TM6wSZLUySxatIgf/ehHK+3T2NjINddcs8pzNTY2Mnjw4JX2OeGEE9h9990ZN25cm31+8pOfcOWVVwJw8sknc+ONN67y2qtbw6RJkzjiiCNW+3wtvfe97233seuKM2ySJHUyywPbmWee2Waf5YHtIx/5yFpd69lnn+Xee+/l73//+0r7feITn1ir63Ske++9t94lOMMmSVJnM3bsWJ588kmGDRvGOeecwznnnMPgwYMZMmQI119//Yo+d999N8OGDWPcuHE0Njayzz77MGLECEaMGLHaIebggw9m/vz5DBs2jLvvvpuf/exnvPvd72bo0KEcc8wxvPLKKwCcf/75XHjhhW86fsqUKey33368613v4pBDDmHevHkr2ocOHcp73vMefvjDH672Z1+4cCFHHXUUu+++OyNHjmT69OkANDc3c9BBBzFixAg+/vGPs/POO/P8888DsMUWWwCVmbr999+fY489ll133ZUTTzyR5b/JPnbsWHbbbTd23313Pv/5z692PavLwCZJUidzwQUXsMsuuzBt2jRGjhzJtGnTePjhh/njH//IOeecw7x587jgggvYZ599mDZtGv/2b//Gdtttx8SJE3nooYe4/vrrOfvss1frWhMmTFhxrX322YcPfehDPPjggzz88MMMHDiQyy67rM1jly5dyqc//WluvPFGpkyZwqmnnsp//ud/AnDKKadw8cUX85e//GWNPvt5553H8OHDmT59Ot/61rc46aSTAPjqV7/KAQccwEMPPcTRRx/N7NmzWz1+6tSpXHTRRTz66KM89dRT/PnPf2bhwoXcfPPNzJgxg+nTp/OlL31pjWpaHS6JSpLUid1zzz2ccMIJdOnShe2335799tuPBx98kC233PIN/ZYuXcqnPvUppk2bRpcuXfjb3/7Wrus98sgjfOlLX2LRokW89NJLHHLIIW32ffzxx3nkkUc46KCDAHjttdfo3bs3ixcvZtGiRey3334AfOxjH+O2225b7c970003AXDAAQewYMECFi9ezD333MPNN98MwKGHHsrWW2/d6vF77LEHffv2BWDYsGE0NjYycuRIunXrxumnn84HPvCBtbpfri0GNkmSOrHlS3qrMm7cOLbffnsefvhhXn/9dbp169au65188sn8z//8D0OHDuWKK65g0qRJK61t0KBBb5pFW7RoUbu/16y1zxsRqz0Om2666Yr3Xbp0YdmyZXTt2pUHHniAO+64g+uuu44f/OAH3Hnnun3618AmSVId1eNrOLp3786LL74IwL777stPf/pTRo8ezcKFC/nTn/7Ef/3Xf/HMM8+s6AOwePFi+vbty0YbbcT48eN57bXX2nXtF198kd69e7N06VKuvvpq+vTp02bfd77znTQ3N/OXv/yF97znPSxdupS//e1vDBo0iK222op77rmHvffem6uvvnq1r7/vvvty9dVX8+Uvf5lJkyax7bbbsuWWW7L33ntzww03cO655/KHP/yBF154YbXP+dJLL/HKK69w+OGHM3LkSN7+9rev9rGrqzSBLSIagReB14BlmdkQEdsA1wP9gEbgw5m5+iMoSZLepGfPnuy1114MHjyYww47jN13352hQ4cSEXz3u9/lrW99Kz179qRr164MHTqUk08+mTPPPJNjjjmGX/3qbyM2cwAAIABJREFUV7zvfe9j8803b9e1v/71r7Pnnnuy8847M2TIkDeEwpY22WQTbrzxRs4++2wWL17MsmXL+OxnP8ugQYP4xS9+wamnnspmm2220mXVls4//3xOOeUUdt99dzbbbDPGjx8PVO5tO+GEE7j++uvZb7/96N27N927d1+tc7744ouMGjWKJUuWkJkr/fqS9orVnQLsaEVga8jM56vavgsszMwLImIssHVmnruy8zQ0NOTkyZM7tljVjD/+LmlDM3PmTAYOHFjvMtTCq6++SpcuXejatSt/+ctf+OQnP8m0adPW6TVa+28fEVMys2FVx5Zmhq0No4D9i/fjgUnASgObJEnSmpo9ezYf/vCHef3119lkk0342c9+Vu+S3qBMgS2BP0REAj/NzEuB7TNzHkBmzouI7Vo7MCLGAGMAdtppp1rVK0mSCrfffjvnnvvGOZX+/fuvePKy7DUMGDCAqVOndlRpa61MgW2vzJxbhLKJEfHY6h5YhLtLobIk2lEFSpK0LmRmu59yLKtDDjlkje4l21BraMva3oJWmi/Ozcy5xet84GZgD+C5iOgNULzOr1+FkiStvW7durFgwYK1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XHIJAHfccQfDhw9nyJAhnHrqqbz66qtA5eckv/jFL/Ke97yHhoYGHnroIQ455BB22WUXfvKTnwAwadIk9t13X44++mh22203PvGJT/D6668DsMUWW/CVr3zl/7N39+FW1XX+/59vAT2mZIKIKBpUWhrCkQFEHRFTQc3bMUfJKayM+plT+i1LnRn121iDjUk3Vg7zk7xLJTO/MmaDaMMX7wX1qBAaaEc5YoIoCCoG+P79sRf8DnAOt+fsvYDn47r2tdf6rM9a670/nOx1rc9ae3PwwQfzyCOPbNZ5Ghsb6dOnDwAzZsxg0KBB1NfX07dvX2bNmgXAzTffvKr9K1/5yqqQ+Mtf/pL99tuPI444goceemiz/81aYmCTJGkrNnr0aD760Y/S0NDA4MGDaWho4Omnn+a+++7jwgsv5NVXX2X06NEcfvjhNDQ0cMEFF7D77rszadIknnzyScaPH8/Xv/71DTrX2LFj+fOf/8xTTz3FM888w1lnncXSpUs5++yzGT9+PM8++yzLly/nF7/4xap99t57bx555BEOP/xwzj77bH7zm9/w6KOPcumll67q8/jjj/PDH/6QZ599lhdeeIHf/va3ALz99tv06dOHxx57jAEDBmz2eVa69tpr+cY3vkFDQwPTpk2jZ8+ezJw5k/Hjx/PQQw/R0NBAhw4d+NWvfsWrr77KZZddxkMPPcSkSZP44x//uKn/VOtkYJMkaRvx4IMPMmLECDp06ED37t054ogjmDp16lr9li1bxpe//GUOPPBATj/99A0OIffddx9f/epX6dixcot8ly5deP755+nduzf77bcfACNHjmTKlCmr9jnppJMAOPDAAzn44IPp3Lkz3bp1o66ujoULFwIwaNAgPvKRj9ChQwdGjBjBgw8+CECHDh047bTTANrkPCsdcsghfP/73+fKK6/kpZdeYscdd+T+++/niSeeYODAgdTX13P//ffz4osv8thjjzF06FC6devG9ttvzxlnnLFBY7Wx2jywRcTeEfE/ETEzImZExDeK9ssj4pWIaChexzfb5+KImB0Rz0fE8GbtxxZtsyPiorauVZKkbUlmblC/MWPG0L17d55++mmmTZvGX//61w0+/ppfX7G+c+6www4AbLfddquWV64vX74cWPsrMVau19XV0aFDhzY7z0qf/exnmTBhAjvuuCPDhw/nD3/4A5nJyJEjaWhooKGhgeeff57LL7+8xfraQ3tcYVsOfDMz9wcGA1+LiAOKbWMys7543QNQbDsT+CRwLPDziOgQER2AnwHHAQcAI5odR5IkbYDOnTuzePFiAIYMGcL48eNZsWIF8+fPZ8qUKQwaNGi1PgCLFi2iR48ebLfddtx0000bfEP/sGHDuPbaa1cFoDfeeINPfOITNDY2Mnv2bABuuukmjjjiiI36DI8//jh//vOfef/99xk/fjx/+7d/u1aftjjPSi+++CIf+chH+PrXv85JJ53EM888w1FHHcVvfvMb5s2bt+qzvfTSSxx88MFMnjyZBQsWsGzZMm6//fZNOuf6tPnXemTmq8CrxfLiiJgJ7LWOXU4GbsvM94A/R8RsYFCxbXZmvggQEbcVfdtncliSpHZWi59P69q1K4cddhh9+vThuOOOo2/fvvTr14+I4Ac/+AF77LEHXbt2pWPHjvTr14+zzz6bc889l9NOO43bb7+dI488kp122mmDznXOOefwpz/9ib59+9KpUye+/OUvc9555/HLX/6S008/neXLlzNw4EC++tWvbtRnOOSQQ7jooot49tlnVz2AsKa6urrNPs9K48eP5+abb6ZTp07sscceXHrppXTp0oUrrriCYcOG8f7779OpUyd+9rOfMXjwYC6//HIOOeQQevToQf/+/Tf7idWWxIZeHt2kg0f0AqYAfYD/BZwNvAVMo3IV7s2IuAZ4NDNvLva5Dvh9cYhjM/Ocov1zwMGZeV4L5xkFjALYZ599/uall15qt88kbe38LVGp7cycOZP999+/1mVs0SZPnsxVV13F3Xdv+f/7bunvISKeyMwB69u33R46iIidgTuA8zPzLeAXwEeBeipX4H64smsLu+c62tduzBybmQMyc0C3bt02u3ZJkqQyaZdfOoiITlTC2q8y87cAmflas+3/CayMyk3A3s127wnMLZZba5ckSTUyceJEvvOd76zW1rt3b+688842P9fQoUMZOnRomx93S9PmgS0qj0pcB8zMzKubtfco7m8DOBVY+bsWE4BbIuJqYE9gX+BxKlfY9o2I3sArVB5MWPdvZkiSpHY3fPhwhg8fvv6OajPtcYXtMOBzwLMR0VC0XULlKc96KtOajcBXADJzRkT8msrDBMuBr2XmCoCIOA+YCHQAxmXmjHaoV5KkdtPSV11o27O5zwy0x1Oi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78q7JEmSaskrbJIkSSVnYJO0xYiIS4ovk13z9fs2Ov4+rRx/SUTs0xbnkKRN4ZSoJElSyXmFTZIkqeS2uu9h22233bJXr161LkOSJGm9nnjiidczs9v6+m11ga1Xr15Mmzat1mVIkiStV0S8tP5eTolKkiSVnoFNkiSp5AxskiRJJbfV3cMmSVKZLFu2jKamJpYu9RfAtmV1dXX07NmTTp06bdL+BjZJq2m66IFal7DJeo4+vNYlSGtpamqic+fO9OrVi4iodTmqgcxkwYIFNDU10bt37006hlOikiS1o6VLl9K1a1fD2jYsIujatetmXWU1sEmS1M4Ma9rcvwEDmyRJUsl5D5skSVXU1veJbsi9mwsXLuSWW27h3HPPbbVPY2MjDz/8MJ/97GfXeazGxkZOOOEEpk+f3mqfESNGMGPGDL7whS/w5ptvMmTIEI4++miGDh3KVVddxYABA9ZbczV8//vf55JLLlm1fuihh/Lwww/XsKLWeYVNkqSt3MKFC/n5z3++zj6NjY3ccsstm32uv/zlLzz88MM888wzXHDBBXz3u9/l6KOP3uzjrsvy5cs3ab/vf//7q62XNayBgU2SpK3eRRddxAsvvEB9fT0XXnghF154IX369OHAAw9k/Pjxq/o88MAD1NfXM2bMGBobGzn88MPp378//fv33+AwM2zYMObNm0d9fT0PPPAAZ599Nr/5zW/W6nfvvfdyyCGH0L9/f04//XSWLFnS6jGnTp3KoYceSr9+/Rg0aBCLFy/m+uuv5/TTT+fEE09k2LBhAPz7v/87AwcOpG/fvlx22WWr9j/llFP4m7/5Gz75yU8yduzYVZ/33Xffpb6+nrPOOguAnXfeGag81dnSGE2ePJmhQ4fymc98hk984hOcddZZZOaq4x1wwAH07duXb33rWxs0VhvDKVFJkrZyo0ePZvr06TQ0NHDHHXdw7bXX8vTTT/P6668zcOBAhgwZwujRo7nqqqu4++67AXjnnXeYNGkSdXV1zJo1ixEjRmzQb3VPmDCBE044gYaGBgCuu+66tfq8/vrrXHHFFdx3333stNNOXHnllVx99dVceumla/X961//yhlnnMH48eMZOHAgb731FjvuuCMAjzzyCM888wxdunTh3nvvZdasWTz++ONkJieddBJTpkxhyJAhjBs3ji5duvDuu+8ycOBATjvtNEaPHs0111yzqs7mfvvb39LQ0LDWGAE89dRTzJgxgz333JPDDjuMhx56iAMOOIA777yT5557johg4cKFG/6Ps4EMbJIkbUMefPBBRowYQYcOHejevTtHHHEEU6dO5YMf/OBq/ZYtW8Z5551HQ0MDHTp04E9/+lOb1fDoo4/yxz/+kcMOOwyohLJDDjmkxb7PP/88PXr0YODAgQCr1XnMMcfQpUsXoHLF7t577+Wggw4CYMmSJcyaNYshQ4bwk5/8hDvvvBOAOXPmMGvWLLp27dpqfesao0GDBtGzZ08A6uvraWxsZPDgwdTV1XHOOefw6U9/mhNOOGEzR2htBjZJkrYhK6fw1mfMmDF0796dp59+mvfff5+6uro2reGYY47h1ltv3aC+rX0lxk477bRav4svvpivfOUrq/WZPHky9913H4888ggf+MAHGDp06Hq/D21dY7TDDjusWu7QoQPLly+nY8eOPP7449x///3cdtttXHPNNfzhD39Y72fbGN7DJknSVq5z584sXrwYgCFDhjB+/HhWrFjB/PnzmTJlCoMGDVqtD8CiRYvo0aMH2223HTfddBMrVqxos3oGDx7MQw89xOzZs4HK9GtrV/A+8YlPMHfuXKZOnQrA4sWLW3zIYPjw4YwbN27VvXCvvPIK8+bNY9GiRey666584AMf4LnnnuPRRx9dtU+nTp1YtmzZWsdqbYxas2TJEhYtWsTxxx/Pj370oxanWTeXV9gkSaqiWvyEWteuXTnssMPo06cPxx13HH379qVfv35EBD/4wQ/YY4896Nq1Kx07dqRfv36cffbZnHvuuZx22mncfvvtHHnkkatdzdpc3bp14/rrr2fEiBG89957AFxxxRXst99+a/XdfvvtGT9+PP/4j//Iu+++y4477sh99923Vr9hw4Yxc+bMVVOrO++8MzfffDPHHnss1157LX379uXjH/84gwcPXrXPqFGj6Nu3L/379+dXv/rVqvZTTz2VRx55ZK0xeu6551r8PIsXL+bkk09m6dKlZCZjxozZrPFpSWzopdE2PWlEB2Aa8EpmnhARvYHbgC7Ak8DnMvOvEbEDcCPwN8AC4IzMbFzXsQcMGJAbclOkpJb5W6JS25o5cyb7779/rctQCbT0txART2Tmer+YrlZTot8AZjZbvxIYk5n7Am8CXyravwS8mZkfA8YU/SRJkrYpVQ9s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1dGzZ086deq0Sfsb2CSt5vLLL691CZtsS65dW5empiY6d+5Mr169iIhal6May0wWLFhAU1MTvXv33qRjOCUqSVIbW7p0KV27djWsCYCIoGvXrpt1xdXAJklSOzCsqbnN/XswsEmSJJWc97BJktTO2vr+yvUdb+HChdxyyy2ce+65rfZpbGzk4Ycf5rOf/ew6j9XY2MgJJ5zA9OnTN6XU9drQOjZk34aGBubOncvxxx/f1mWuZvLkyWy//fYceuih7Xqe5rzCJknSVmbhwoX8/Oc/X2efxsZGbrnlljY97/Llyzd6n82pY819GxoauOeeezbpWBtj8uTJPPzww+1+nuYMbJIkbWUuuugiXnjhBerr67nwwgu58MIL6dOnDwceeCDjx49f1eeBBx6gvr6eMWPG0NjYyOGHH07//v3p37//BgeS66+/ntNPP50TTzyRYcOGkZktnq+19jXraElrtTXf98orr+TSSy9l/Pjx1NfXM378eN5++22++MUvMnDgQA466CDuuuuuVTWfcsopnHjiifTu3ZtrrrmGq6++moMOOojBgwfzxhtvADB06FDOP/98Dj30UPr06cPjjz9OY2Mj1157LWPGjKG+vp4HHniA22+/nT59+tCvXz+GDBmy6f9w6+CUqCRJW5nRo0czffp0GhoauOOOO7j22mt5+umnef311xk4cCBDhgxh9OjRXHXVVdx9990AvPPOO0yaNIm6ujpmzZrFiBEjNvi3uR955BGeeeYZunTpwh133EFDQ8Na53v44YdbbF+zjpbsvvvuLda25r7du3dn2rRpXHPNNQBccsklfOpTn2LcuHEsXLiQQYMGcfTRRwMwffp0nnrqKZYuXcrHPvYxrrzySp566ikuuOACbrzxRs4//3wA3n77bR5++GGmTJnCF7/4RaZPn85Xv/pVdt55Z771rW8BcOCBBzJx4kT22msvFi5cuGn/aOthYJMkaSv24IMPMmLECDp06ED37t054ogjmDp1Kh/84AdX67ds2TLOO+88Ghoa6NChA3/60582+BzHHHMMXbp0Wef5NrSOlmxqbffeey8TJkzgqquuAipft/Lyyy8DcOSRR9K5c2c6d+7MLrvswoknnghUwtczzzyz6hgjRowAYMiQIbz11lstBrLDDjuMs88+m7//+7/n7/7u7zaoto1lYJMkaSuWmRvUb8yYMXTv3p2nn36a999/n7q6ug0+x0477bTe821oHW1ZW2Zyxx138PGPf3y19scee4wddthh1fp22223an277bZb7V68Nb+Oo6Wv57j22mt57LHH+N3vfkd9fT0NDQ107dp1gz/fhvAeNkmStjKdO3dm8eLFQOXK0Pjx41mxYgXz589nypQpDBo0aLU+AIsWLaJHjx5st9123HTTTaxYsWKTzt3a+Ta0jpa0Vtua+665Pnz4cH7605+uCotPPfXURn+elffaPfjgg+yyyy7ssssua53nhRde4OCDD+a73/0uu+22G3PmzNno86xPKa6wRcQ44ARgXmb2KdouB74MzC+6XZKZ7f/ohyRJbazaP5vWtWtXDjvsMPr06cNxxx1H37596devHxHBD37wA/bYYw+6du1Kx44d6devH2effTbnnnsup512GrfffjtHHnnkalfNNsapp57KI488stb5Wmtfs44LLrhgrWO2Vlvfvn1X23fkyJGMHj2a+vp6Lr74Yv7lX/6F888/n759+5KZ9OrVa533yrVk11135dBDD+Wtt95i3LhxAJx44ol85jOf4a677uKnP/0pY8aMYdasWWQmRx11FP369duksVuX2JxLlG1WRMQQYAlw4xqBbUlmXrUxxxowYEBu6E2Skta2Jf8e55Zcu7YuM2fOZP/99691GdpMQ4cO5aqrrmLAgAFtcryW/i4i4onMXO8JSjElmplTgDdqXYckSVIZlWJKdB3Oi4jPA9OAb2bmmy11iohRwCiAffbZp4rlSZK0bZg4cSLf+c53Vmvr3bs3d9555xZ1jo0xefLkmpy3JWUObL8A/hXI4v2HwBdb6piZY4GxUJkSrVaBkiS1JjO3qh+AHz58OMOHD5ocMKoAACAASURBVN/iz1Erm3sLWimmRFuSma9l5orMfB/4T2BQrWuSJGlD1NXVsWDBgs3+P2ltHTKTBQsWbNRXpayptFfYIqJHZr5arJ4KtM+vzkqS1MZ69uxJU1MT8+fPX39nbRPq6uro2bPnJu9fisAWEbcCQ4HdIqIJuAwYGhH1VKZEG4Gv1KxASZI2QqdOnejdu3ety9BWpBSBLTNHtNB8XdULkSRJKqHS3sMmSZKkCgObJElSyRnYJEmSSs7AJkmSVHIGNkmSpJIzsEmSJJWcgU2SJKnkDGySJEklZ2CTJEkqOQObJElSyRnYJEmSSs7A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",
      "text/plain": [
       "<Figure size 720x1800 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib\n",
    "\n",
    "# --- WORKAROUND START ---\n",
    "# Matplotlib 3.9.0 removed the '_get' attribute which the Dataproc environment needs.\n",
    "# We manually re-add it here to prevent the \"AttributeError: 'RcParams' object has no attribute '_get'\" crash.\n",
    "\n",
    "try:\n",
    "    from matplotlib import RcParams\n",
    "except ImportError:\n",
    "    # Fallback if RcParams is not directly exposed\n",
    "    RcParams = type(matplotlib.rcParams)\n",
    "\n",
    "if not hasattr(RcParams, '_get'):\n",
    "    # Alias the missing internal method to the standard .get() method\n",
    "    RcParams._get = RcParams.get\n",
    "# --- WORKAROUND END ---\n",
    "\n",
    "# Now run magic commands\n",
    "%matplotlib inline\n",
    "ax = attack_stats.toPandas().plot.bar(x='protocol_type', subplots=True, figsize=(10,25))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright 2019 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
